package com.iflytek.aisol.audit.iflytek.strategy.manage.constant;

public enum ParamType {
    INT("int"),
    DOUBLE("double"),
    STRING("string"),
    STRING_ARRAY("string[]"),
    INT_ARRAY("int[]"),
    MAP_STRING_STRING("map<string,string>"),
    MAP_STRING_INT("map<string,int>"),
    BOOLEAN("boolean");

    private final String typeName;

    ParamType(String typeName) {
        this.typeName = typeName;
    }

    public String getTypeName() {
        return typeName;
    }

    /**
     * 判断是否是支持的参数类型
     *
     * @param type 类型名称
     * @return 如果支持，返回 true；否则返回 false
     */
    public static boolean isSupportedType(String type) {
        for (ParamType parameterType : values()) {
            if (parameterType.typeName.equalsIgnoreCase(type)) {
                return true;
            }
        }
        return false;
    }

    /**
     * 根据类型名称获取枚举实例
     *
     * @param type 类型名称
     * @return 对应的枚举实例
     * @throws IllegalArgumentException 如果类型名称无效
     */
    public static ParamType fromTypeName(String type) {
        for (ParamType parameterType : values()) {
            if (parameterType.typeName.equalsIgnoreCase(type)) {
                return parameterType;
            }
        }
        throw new IllegalArgumentException("Unsupported parameter type: " + type);
    }
}
